/**********************************************************************
* $Id$		abstract.txt 			
*//**
* @file		abstract.txt 
* @brief	Example description file
* @version	2.0
* @date		
* @author	NXP MCU SW Application Team/Micromint USA Support
*
* Copyright(C) 2010, NXP Semiconductor
* All rights reserved.
*
***********************************************************************
* Software that is described herein is for illustrative purposes only
* which provides customers with programming information regarding the
* products. This software is supplied "AS IS" without any warranties.
* NXP Semiconductors assumes no responsibility or liability for the
* use of the software, conveys no license or title under any patent,
* copyright, or mask work right to the product. NXP Semiconductors
* reserves the right to make changes in the software without
* notification. NXP Semiconductors also make no representation or
* warranty that such application will be suitable for the specified
* use without further testing or modification.
**********************************************************************/
  
@Example description:
Purpose:
	This example describes how to use DMA to generate a sinewave signal
Process:
	DAC will be initialized with maximum current is 700uA. This allows a 
        maximum update rate of 1Mhz
	Formula for ouput voltage on AOUT is: 
		AOUT = VALUE x ((Vrefp - Vrefn)/1024)+Vrefn
	in which:
	- Vrefp: tied to VDD(3.3V)
	- Vrefn: tied to Vss
	
	DAC will generate a sinewave with peak to peak is within Vrefp and 
        Vrefn. We need to prepare a look up table with 60 items, each item is 
        the value to update AOUT voltage, and it's correspondent to a sample 
        point of 1 circle sinewave signal. The formula is below:
		for(i=0;i<NUM_SINE_SAMPLE;i++) //NUM_SINE_SAMPLE = 60
		{
			dac_sine_lut[i] = 512 + 512*sin(i);
			dac_sine_lut[i] = (dac_sine_lut[i]<<6);
		}
		  
	GPDMA channel 0 is configured in this example and used to transfer 
        dac_sine_lut[i] to DAC peripheral. When the last item of dac_sine_lut 
        is transfered, GPDMA will roll back to transfer the first item.
			
	DAC is configured to use time out for each DAC value update and trigger 
        GPDMA to fill DAC value register.
	This time out value can also be used to calculate the sinewave 
        frequency:
	
        time out = (PCLK_DAC_IN_MHZ*1000000)/(SINE_FREQ_IN_HZ*NUM_SINE_SAMPLE);
	Where:	- PCLK_DAC_IN_MHZ = 25
		- SINE_FREQ_IN_HZ = 60
		- NUM_SINE_SAMPLE = 60
		
	Observe AOUT(P0.26) pin 7 on J7 signal by oscilloscope.
					
@Directory contents:
	\EWARM: includes EWARM (IAR) project and configuration files
	\Keil:	includes RVMDK (Keil)project and configuration files 
	 
	lpc17xx_libcfg.h: Library configuration file - include needed driver 
        library for this example 
	makefile: Example's makefile (to build with GNU toolchain)
	dac_sinewave_test.c: Main program

@How to run:
	
Running mode:
	This example can run on RAM/ROM mode.
				
Step to run:
	- Step 1: Build example.
	- Step 2: Burn hex file into board (if run on ROM mode)
	- Step 3: Configure hardware as above instruction 
	- Step 4: Run example and observe AOUT(P0.26) on pin 7 of J7 signal by 
                  oscilloscope
		
@Tip:
	- Open \EWARM\*.eww project file to run example on IAR
	- Open \RVMDK\*.uvproj project file to run example on Keil